home *** CD-ROM | disk | FTP | other *** search
/ The Original Shareware 1.1 / The Original Shareware (WeMake CDs)(Volume 1.1)(CDs, Inc)(1993).iso / 36 / qemfnc24.zip / FUNC24.PAT
Text File  |  1991-05-16  |  8KB  |  203 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.               Quarterdeck Technical Note
  11.  
  12.               Subject:  Patching QEMM-386 5.10, 5.11, and 
  13.               5.12 to resolve problems with programs that make 
  14.               EMS 4.0 calls to move or exchange zero-length 
  15.               memory regions.  
  16.  
  17.                 Background: The EMS (Expanded Memory 
  18.               Specification) 4.0 provides a call (function 24) 
  19.               which programs can make to move information from 
  20.               one region of memory to another, or to exchange 
  21.               information between two regions of memory.  
  22.  
  23.               Users of QEMM-386 versions 5.10 through 5.12 may 
  24.               experience system instability when a program makes 
  25.               the Function 24 EMS call to move or exchange a 
  26.               region of memory that is zero bytes in length.  The 
  27.               symptom is likely to be a system crash.  There is 
  28.               no good reason to use Function 24 on a region of 
  29.               length zero, but such a situation may occur when a 
  30.               program uses the same subroutine to implement 
  31.               Function 24 in a variety of different situations.
  32.  
  33.                 Users of versions of QEMM-386 after version 5.12 
  34.               should not experience this problem.  In the 
  35.               meantime, QEMM-386 can be patched to eliminate the 
  36.               problem.  
  37.  
  38.                 The following procedure is intended to prevent 
  39.               system crashes when EMS 4.0 Function 24 is used to 
  40.               move or exchange zero-length regions of memory 
  41.               under QEMM-386.  This procedure is for use with 
  42.               QEMM-386 versions:
  43.  
  44.                       5.10 
  45.                       5.11 
  46.                       5.12
  47.  
  48.               ***************************************************
  49.               
  50.                 Do NOT use this patch for QEMM-386 5.0 or 
  51.               earlier, or on any version of QEMM-386 later than 
  52.               5.12.  If you are in doubt, go to the directory 
  53.               where the QEMM-386 files are located and check the 
  54.               date on the QEMM386.SYS file by issuing the DOS 
  55.               command:
  56.  
  57.                         DIR QEMM386.SYS
  58.  
  59.               If the date on the file is
  60.  
  61.                         5:10 am 
  62.                         5:11 am 
  63.                         5:12 am
  64.  
  65.               then use the patch in this section. If there is no 
  66.               QEMM386.SYS file in this directory, or if the date 
  67.               on the file is later than 5:12 am, then you 
  68.               probably have an earlier or later version of QEMM-
  69.               386, and this patch is not appropriate.  
  70.  
  71.               *************************************************** 
  72.  
  73.                 1) Make a copy of the QEMM386.SYS file in your 
  74.               QEMM directory.  We are about to alter your current 
  75.               copy of QEMM386.SYS; the copy you make will serve 
  76.               as a backup in case this operation fails.
  77.  
  78.                     COPY C:\QEMM\QEMM386.SYS C:\QEMM\QEMM386.OLD
  79.  
  80.                 (If your QEMM386.SYS is not located in the QEMM 
  81.               directory of the C: drive, change the path 
  82.               accordingly.)
  83.  
  84.                 2) Go to the DOS directory on the hard disk and 
  85.               type:
  86.  
  87.                   DEBUG C:\QEMM\QEMM386.SYS
  88.  
  89.                 (If your QEMM386.SYS is not located in the QEMM 
  90.               directory of the C: drive, change the path 
  91.               accordingly.)
  92.  
  93.                 Hit the Enter key; you should see the DEBUG 
  94.               prompt, which is a hyphen.
  95.  
  96.                 3) At the DEBUG prompt, type:
  97.  
  98.                   S 100 L F000 8B CB 0B DA 74 F0
  99.  
  100.                 Hit the Enter key; DEBUG should return a segment 
  101.               address and an offset:
  102.  
  103.                   xxxx:yyyy
  104.  
  105.                 4) At the DEBUG prompt again, use the segment 
  106.               address and offset that was just returned to give 
  107.               the DEBUG command:
  108.  
  109.                   E xxxx:yyyy 8B CB 0B DA 74 22
  110.    
  111.                 The address that DEBUG returned in step 3 should 
  112.               be used in place of the address xxxx:yyyy, which we 
  113.               use as an example.  Hit the Enter key; the DEBUG 
  114.               prompt should return in a moment.
  115.  
  116.  
  117.                 5) At the DEBUG prompt, type
  118.  
  119.                   W
  120.  
  121.                 Hit the Enter key; DEBUG will announce that it is 
  122.               writing a certain number of bytes, then it will 
  123.               return the DEBUG prompt.
  124.  
  125.                 6) At the DEBUG prompt, type
  126.  
  127.                   Q
  128.  
  129.                 Hit the Enter key to exit DEBUG and return to 
  130.               DOS.  
  131.  
  132.                 7) To double-check your patch, type the following 
  133.               from the DOS prompt in your DOS directory:
  134.  
  135.                   COMP C:\QEMM\QEMM386.SYS C:\QEMM\QEMM386.OLD
  136.  
  137.                (If your QEMM386.SYS is not located in the QEMM
  138.               directory of the C: drive, change the path
  139.               accordingly.)
  140.  
  141.                 Hit the Enter key.  COMP should return:
  142.  
  143.  
  144.                             C:QEMM386.SYS and C:QEMM386.OLD
  145.  
  146.                             Compare error at OFFSET xxxx
  147.                             File 1 = 22
  148.  
  149.                             File 2 = F0
  150.  
  151.                             Eof mark not found
  152.  
  153.                             Compare more files (Y/N)?
  154.  
  155.                 The value xxxx after OFFSET will vary from 
  156.               version to version of QEMM 5.1, but the rest of the 
  157.               message should be the same: it tells us that 
  158.               there is exactly one byte difference between the 
  159.               files, and the differing byte is 22 in QEMM386.SYS
  160.               and F0 in QEMM386.OLD.  If COMP returns the 
  161.               message:
  162.  
  163.                             Files compare ok  
  164.  
  165.               ...then you probably failed to use DEBUG's W 
  166.               command to save your change, or you have compared 
  167.               the wrong files.  If COMP returns more than one 
  168.               compare error, or if the bytes returned by the 
  169.               compare error don't match those in the above 
  170.               example, the procedure has failed.  In this case, 
  171.               use the DOS command:
  172.  
  173.                   COPY C:\QEMM\QEMM386.OLD C:\QEMM\QEMM386.SYS
  174.  
  175.               ... to restore the original file, and try again.
  176.  
  177.  
  178.               If the patch was successful, you should now reboot 
  179.               the system and test the patched version of QEMM-
  180.               386.  
  181.               
  182.  
  183.               --------------------------------------------------
  184.  
  185.                 If the system fails after you perform this patch, 
  186.               you can follow the instructions in the 
  187.               "Installation" section of your QEMM-386 manual to 
  188.               recover without resorting to a boot floppy.  After 
  189.               your system is booted successfully, copy the backup 
  190.               of QEMM-386 that you made back to its original 
  191.               name with the following DOS command:
  192.  
  193.                   COPY C:\QEMM\QEMM386.OLD C:\QEMM\QEMM386.SYS
  194.  
  195.                 (If your QEMM386.SYS is not located in the QEMM 
  196.               directory of the C: drive, change the path 
  197.               accordingly.)
  198.  
  199.                 You may then wish to try the above procedure 
  200.               again, in case a mistake was made.
  201.  
  202.              * * *   E N D   O F   F I L E    * * *
  203.